Extensible Stylesheet Language Transformations (“XSLT”) is an Extensible Markup Language (“XML”)-based language used for the transformation of XML documents. XSLT is processed by an XSLT processor that takes two input files: an XML source document and an XSLT stylesheet file containing the XSLT program text. The XSLT processor reads the XSLT stylesheet file and the XML source document and, based upon the XSLT program text, retrieves portions of the XML source document, transforms them, and sends them to an output file. The output file may be XML, hyper-text markup language (“HTML”), plain text, or any other format that the XSLT processor is capable of producing.
In order to identify subsets of the source document, certain XSLT tags include attributes that are specified using the XML Path Language (“XPath”). XPath is a query language for addressing portions of an XML document. This allows consumers of XML to query the XML source document and directly access any part of the XML contained therein. XPath expressions can address a single word or character within an XML source document, or can refer to entire sections of the XML source document at once.
XPath derives its name from its use of a path notation for navigating through the hierarchical structure of an XML source document. In addition to providing functionality for addressing parts of an XML document, XPath also provides basic facilities for manipulation of strings, numbers, and Booleans. XPath uses a compact, non-XML syntax to facilitate use of XPath within Uniform Resource Identifiers (“URIs”) and XML attribute values. XPath operates on the abstract, logical structure of an XML document.
Due to the complexity of XPath and its syntax, XPath expressions are often very complex. As a result, it is frequently difficult to create XPath expressions that are both syntactically correct and that return the desired portion of the XML source document, especially when the XPath expressions are created manually. It is also frequently difficult to debug XPath expressions that are syntactically incorrect or that do not return the desired portion of the XML source document.
It is with respect to these considerations and others that the disclosure made herein is provided.